<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>FabGL: MCP23S17 Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">FabGL
   </div>
   <div id="projectbrief">ESP32 Display Controller and Graphics Library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('classfabgl_1_1_m_c_p23_s17.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classfabgl_1_1_m_c_p23_s17-members.html">List of all members</a>  </div>
  <div class="headertitle"><div class="title">MCP23S17 Class Reference</div></div>
</div><!--header-->
<div class="contents">

<p><a class="el" href="classfabgl_1_1_m_c_p23_s17.html" title="MCP23S17 driver.">MCP23S17</a> driver.  
 <a href="classfabgl_1_1_m_c_p23_s17.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_m_c_p23_s17_8h_source.html">MCP23S17.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a4a47f12debf6d5d7273c3e5fb360417a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_a4a47f12debf6d5d7273c3e5fb360417a.html#a4a47f12debf6d5d7273c3e5fb360417a">available</a> ()</td></tr>
<tr class="memdesc:a4a47f12debf6d5d7273c3e5fb360417a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines <a class="el" href="classfabgl_1_1_m_c_p23_s17.html" title="MCP23S17 driver.">MCP23S17</a> availability.  <a href="classfabgl_1_1_m_c_p23_s17_a4a47f12debf6d5d7273c3e5fb360417a.html#a4a47f12debf6d5d7273c3e5fb360417a">More...</a><br /></td></tr>
<tr class="separator:a4a47f12debf6d5d7273c3e5fb360417a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab205baa284c3197865fef390a0304355"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_ab205baa284c3197865fef390a0304355.html#ab205baa284c3197865fef390a0304355">begin</a> (int MISO=-1, int MOSI=-1, int CLK=-1, int CS=-1, int CSActiveState=-1, int host=HSPI_HOST)</td></tr>
<tr class="memdesc:ab205baa284c3197865fef390a0304355"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes <a class="el" href="classfabgl_1_1_m_c_p23_s17.html" title="MCP23S17 driver.">MCP23S17</a> driver.  <a href="classfabgl_1_1_m_c_p23_s17_ab205baa284c3197865fef390a0304355.html#ab205baa284c3197865fef390a0304355">More...</a><br /></td></tr>
<tr class="separator:ab205baa284c3197865fef390a0304355"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f75f7eae543df606255fb17aaff4fcd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_a0f75f7eae543df606255fb17aaff4fcd.html#a0f75f7eae543df606255fb17aaff4fcd">configureGPIO</a> (int gpio, <a class="el" href="group___enumerations_ga8389ac8ebb8a33d21364f84ddfa64c00.html#ga8389ac8ebb8a33d21364f84ddfa64c00">MCPDir</a> dir, bool pullup=false, uint8_t hwAddr=0)</td></tr>
<tr class="memdesc:a0f75f7eae543df606255fb17aaff4fcd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configure a pin direction and pullup.  <a href="classfabgl_1_1_m_c_p23_s17_a0f75f7eae543df606255fb17aaff4fcd.html#a0f75f7eae543df606255fb17aaff4fcd">More...</a><br /></td></tr>
<tr class="separator:a0f75f7eae543df606255fb17aaff4fcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8a4b526fa1bbd378c9a65410795159c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_af8a4b526fa1bbd378c9a65410795159c.html#af8a4b526fa1bbd378c9a65410795159c">disableInterrupt</a> (int gpio, uint8_t hwAddr=0)</td></tr>
<tr class="memdesc:af8a4b526fa1bbd378c9a65410795159c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables any interrupt on the specified pin.  <a href="classfabgl_1_1_m_c_p23_s17_af8a4b526fa1bbd378c9a65410795159c.html#af8a4b526fa1bbd378c9a65410795159c">More...</a><br /></td></tr>
<tr class="separator:af8a4b526fa1bbd378c9a65410795159c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac85086c7d62df2eace4d8fa2be5a6987"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_ac85086c7d62df2eace4d8fa2be5a6987.html#ac85086c7d62df2eace4d8fa2be5a6987">enableInterrupt</a> (int gpio, <a class="el" href="group___enumerations_gacca22cd3567afc98587db31349ba00c7.html#gacca22cd3567afc98587db31349ba00c7">MCPIntTrigger</a> trigger, bool defaultValue=false, uint8_t hwAddr=0)</td></tr>
<tr class="memdesc:ac85086c7d62df2eace4d8fa2be5a6987"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables interrupt on the specific pin.  <a href="classfabgl_1_1_m_c_p23_s17_ac85086c7d62df2eace4d8fa2be5a6987.html#ac85086c7d62df2eace4d8fa2be5a6987">More...</a><br /></td></tr>
<tr class="separator:ac85086c7d62df2eace4d8fa2be5a6987"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a193701415e90c6513fa98fd5303ad8c8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_a193701415e90c6513fa98fd5303ad8c8.html#a193701415e90c6513fa98fd5303ad8c8">enableINTMirroring</a> (bool value, uint8_t hwAddr=0)</td></tr>
<tr class="memdesc:a193701415e90c6513fa98fd5303ad8c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables/disables INTs pins mirroring.  <a href="classfabgl_1_1_m_c_p23_s17_a193701415e90c6513fa98fd5303ad8c8.html#a193701415e90c6513fa98fd5303ad8c8">More...</a><br /></td></tr>
<tr class="separator:a193701415e90c6513fa98fd5303ad8c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abab6c21e5930b8616afec12a6b0778ca"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_abab6c21e5930b8616afec12a6b0778ca.html#abab6c21e5930b8616afec12a6b0778ca">enableINTOpenDrain</a> (bool value, uint8_t hwAddr=0)</td></tr>
<tr class="memdesc:abab6c21e5930b8616afec12a6b0778ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables/disables the INT pin open-drain.  <a href="classfabgl_1_1_m_c_p23_s17_abab6c21e5930b8616afec12a6b0778ca.html#abab6c21e5930b8616afec12a6b0778ca">More...</a><br /></td></tr>
<tr class="separator:abab6c21e5930b8616afec12a6b0778ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad87ef9d4b57ebfecc575f6f2147f162a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_ad87ef9d4b57ebfecc575f6f2147f162a.html#ad87ef9d4b57ebfecc575f6f2147f162a">enablePortPullUp</a> (int port, uint8_t value, uint8_t hwAddr=0)</td></tr>
<tr class="memdesc:ad87ef9d4b57ebfecc575f6f2147f162a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables/disables port pull-ups.  <a href="classfabgl_1_1_m_c_p23_s17_ad87ef9d4b57ebfecc575f6f2147f162a.html#ad87ef9d4b57ebfecc575f6f2147f162a">More...</a><br /></td></tr>
<tr class="separator:ad87ef9d4b57ebfecc575f6f2147f162a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf81d3fdaf258088d7692fa70cece087"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_aaf81d3fdaf258088d7692fa70cece087.html#aaf81d3fdaf258088d7692fa70cece087">end</a> ()</td></tr>
<tr class="memdesc:aaf81d3fdaf258088d7692fa70cece087"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deinitializes <a class="el" href="classfabgl_1_1_m_c_p23_s17.html" title="MCP23S17 driver.">MCP23S17</a> driver.  <a href="classfabgl_1_1_m_c_p23_s17_aaf81d3fdaf258088d7692fa70cece087.html#aaf81d3fdaf258088d7692fa70cece087">More...</a><br /></td></tr>
<tr class="separator:aaf81d3fdaf258088d7692fa70cece087"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae8495310e8909896c87318b61916809"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_aae8495310e8909896c87318b61916809.html#aae8495310e8909896c87318b61916809">getINTActiveHigh</a> (uint8_t hwAddr=0)</td></tr>
<tr class="memdesc:aae8495310e8909896c87318b61916809"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the polarity of the INT pins.  <a href="classfabgl_1_1_m_c_p23_s17_aae8495310e8909896c87318b61916809.html#aae8495310e8909896c87318b61916809">More...</a><br /></td></tr>
<tr class="separator:aae8495310e8909896c87318b61916809"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb39053b2749aab18f6457ea2bfcfd5f"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_abb39053b2749aab18f6457ea2bfcfd5f.html#abb39053b2749aab18f6457ea2bfcfd5f">getPortDir</a> (int port, uint8_t hwAddr=0)</td></tr>
<tr class="memdesc:abb39053b2749aab18f6457ea2bfcfd5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets port direction.  <a href="classfabgl_1_1_m_c_p23_s17_abb39053b2749aab18f6457ea2bfcfd5f.html#abb39053b2749aab18f6457ea2bfcfd5f">More...</a><br /></td></tr>
<tr class="separator:abb39053b2749aab18f6457ea2bfcfd5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51f318b3a55f21c122f9090d60549306"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_a51f318b3a55f21c122f9090d60549306.html#a51f318b3a55f21c122f9090d60549306">getPortIntCaptured</a> (int port, uint8_t hwAddr=0)</td></tr>
<tr class="memdesc:a51f318b3a55f21c122f9090d60549306"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads status of input port when last interrupt has been triggered.  <a href="classfabgl_1_1_m_c_p23_s17_a51f318b3a55f21c122f9090d60549306.html#a51f318b3a55f21c122f9090d60549306">More...</a><br /></td></tr>
<tr class="separator:a51f318b3a55f21c122f9090d60549306"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34e4bc492e58778c7d864db2cf4ec57d"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_a34e4bc492e58778c7d864db2cf4ec57d.html#a34e4bc492e58778c7d864db2cf4ec57d">getPortIntFlags</a> (int port, uint8_t hwAddr=0)</td></tr>
<tr class="memdesc:a34e4bc492e58778c7d864db2cf4ec57d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads interrupt flags for the specified port.  <a href="classfabgl_1_1_m_c_p23_s17_a34e4bc492e58778c7d864db2cf4ec57d.html#a34e4bc492e58778c7d864db2cf4ec57d">More...</a><br /></td></tr>
<tr class="separator:a34e4bc492e58778c7d864db2cf4ec57d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac818c39acf86be4b951904f3ac11655c"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_ac818c39acf86be4b951904f3ac11655c.html#ac818c39acf86be4b951904f3ac11655c">getPortPullUp</a> (int port, uint8_t hwAddr=0)</td></tr>
<tr class="memdesc:ac818c39acf86be4b951904f3ac11655c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets port pull-ups.  <a href="classfabgl_1_1_m_c_p23_s17_ac818c39acf86be4b951904f3ac11655c.html#ac818c39acf86be4b951904f3ac11655c">More...</a><br /></td></tr>
<tr class="separator:ac818c39acf86be4b951904f3ac11655c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96acd2b48e248c0dc070074d676b9222"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_a96acd2b48e248c0dc070074d676b9222.html#a96acd2b48e248c0dc070074d676b9222">initDevice</a> (uint8_t hwAddr)</td></tr>
<tr class="memdesc:a96acd2b48e248c0dc070074d676b9222"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes additional <a class="el" href="classfabgl_1_1_m_c_p23_s17.html" title="MCP23S17 driver.">MCP23S17</a> devices connected to the same SPI bus but with a different hardware address.  <a href="classfabgl_1_1_m_c_p23_s17_a96acd2b48e248c0dc070074d676b9222.html#a96acd2b48e248c0dc070074d676b9222">More...</a><br /></td></tr>
<tr class="separator:a96acd2b48e248c0dc070074d676b9222"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe1923d1107ce527071d3d0b0dc50b3a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_afe1923d1107ce527071d3d0b0dc50b3a.html#afe1923d1107ce527071d3d0b0dc50b3a">readGPIO</a> (int gpio, uint8_t hwAddr=0)</td></tr>
<tr class="memdesc:afe1923d1107ce527071d3d0b0dc50b3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads input status of a pin.  <a href="classfabgl_1_1_m_c_p23_s17_afe1923d1107ce527071d3d0b0dc50b3a.html#afe1923d1107ce527071d3d0b0dc50b3a">More...</a><br /></td></tr>
<tr class="separator:afe1923d1107ce527071d3d0b0dc50b3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af5e184c08c0ef35a04b44fb54c323480"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_af5e184c08c0ef35a04b44fb54c323480.html#af5e184c08c0ef35a04b44fb54c323480">readPort</a> (int port, uint8_t hwAddr=0)</td></tr>
<tr class="memdesc:af5e184c08c0ef35a04b44fb54c323480"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets status of input pins of specified port.  <a href="classfabgl_1_1_m_c_p23_s17_af5e184c08c0ef35a04b44fb54c323480.html#af5e184c08c0ef35a04b44fb54c323480">More...</a><br /></td></tr>
<tr class="separator:af5e184c08c0ef35a04b44fb54c323480"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abacf2f53773618f7bd2b23639fb63034"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_abacf2f53773618f7bd2b23639fb63034.html#abacf2f53773618f7bd2b23639fb63034">readPort</a> (int port, void *buffer, size_t length, uint8_t hwAddr=0)</td></tr>
<tr class="memdesc:abacf2f53773618f7bd2b23639fb63034"><td class="mdescLeft">&#160;</td><td class="mdescRight">High speed reads en entire buffer from a specific port.  <a href="classfabgl_1_1_m_c_p23_s17_abacf2f53773618f7bd2b23639fb63034.html#abacf2f53773618f7bd2b23639fb63034">More...</a><br /></td></tr>
<tr class="separator:abacf2f53773618f7bd2b23639fb63034"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65b2c8f8f694f5076c43802311d7457a"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_a65b2c8f8f694f5076c43802311d7457a.html#a65b2c8f8f694f5076c43802311d7457a">readPort16</a> (uint8_t hwAddr=0)</td></tr>
<tr class="memdesc:a65b2c8f8f694f5076c43802311d7457a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets status of input pins of combined port A and B.  <a href="classfabgl_1_1_m_c_p23_s17_a65b2c8f8f694f5076c43802311d7457a.html#a65b2c8f8f694f5076c43802311d7457a">More...</a><br /></td></tr>
<tr class="separator:a65b2c8f8f694f5076c43802311d7457a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae09cec89e003ed8907ffcae9afcc86aa"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_ae09cec89e003ed8907ffcae9afcc86aa.html#ae09cec89e003ed8907ffcae9afcc86aa">readReg</a> (uint8_t addr, uint8_t hwAddr=0)</td></tr>
<tr class="memdesc:ae09cec89e003ed8907ffcae9afcc86aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads 8 bit value from an internal register.  <a href="classfabgl_1_1_m_c_p23_s17_ae09cec89e003ed8907ffcae9afcc86aa.html#ae09cec89e003ed8907ffcae9afcc86aa">More...</a><br /></td></tr>
<tr class="separator:ae09cec89e003ed8907ffcae9afcc86aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ce7f6e8f2563790be2cb010d99a2947"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_a6ce7f6e8f2563790be2cb010d99a2947.html#a6ce7f6e8f2563790be2cb010d99a2947">readReg16</a> (uint8_t addr, uint8_t hwAddr=0)</td></tr>
<tr class="memdesc:a6ce7f6e8f2563790be2cb010d99a2947"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads 16 bit value from two consecutive registers.  <a href="classfabgl_1_1_m_c_p23_s17_a6ce7f6e8f2563790be2cb010d99a2947.html#a6ce7f6e8f2563790be2cb010d99a2947">More...</a><br /></td></tr>
<tr class="separator:a6ce7f6e8f2563790be2cb010d99a2947"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c2b2fb01c26e9d23bf985a960157429"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_a9c2b2fb01c26e9d23bf985a960157429.html#a9c2b2fb01c26e9d23bf985a960157429">setINTActiveHigh</a> (bool value, uint8_t hwAddr=0)</td></tr>
<tr class="memdesc:a9c2b2fb01c26e9d23bf985a960157429"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the polarity of the INT pins.  <a href="classfabgl_1_1_m_c_p23_s17_a9c2b2fb01c26e9d23bf985a960157429.html#a9c2b2fb01c26e9d23bf985a960157429">More...</a><br /></td></tr>
<tr class="separator:a9c2b2fb01c26e9d23bf985a960157429"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1dfc220a260c3445263d1c3f64012df0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_a1dfc220a260c3445263d1c3f64012df0.html#a1dfc220a260c3445263d1c3f64012df0">setPortDir</a> (int port, uint8_t value, uint8_t hwAddr=0)</td></tr>
<tr class="memdesc:a1dfc220a260c3445263d1c3f64012df0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets port direction.  <a href="classfabgl_1_1_m_c_p23_s17_a1dfc220a260c3445263d1c3f64012df0.html#a1dfc220a260c3445263d1c3f64012df0">More...</a><br /></td></tr>
<tr class="separator:a1dfc220a260c3445263d1c3f64012df0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11455dbe62297bf55558ada2ae149cbd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_a11455dbe62297bf55558ada2ae149cbd.html#a11455dbe62297bf55558ada2ae149cbd">setPortInputPolarity</a> (int port, uint8_t value, uint8_t hwAddr=0)</td></tr>
<tr class="memdesc:a11455dbe62297bf55558ada2ae149cbd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets input polarity.  <a href="classfabgl_1_1_m_c_p23_s17_a11455dbe62297bf55558ada2ae149cbd.html#a11455dbe62297bf55558ada2ae149cbd">More...</a><br /></td></tr>
<tr class="separator:a11455dbe62297bf55558ada2ae149cbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1762512f6b6a1b4149af5778d048fa26"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_a1762512f6b6a1b4149af5778d048fa26.html#a1762512f6b6a1b4149af5778d048fa26">writeGPIO</a> (int gpio, bool value, uint8_t hwAddr=0)</td></tr>
<tr class="memdesc:a1762512f6b6a1b4149af5778d048fa26"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets output status of a pin.  <a href="classfabgl_1_1_m_c_p23_s17_a1762512f6b6a1b4149af5778d048fa26.html#a1762512f6b6a1b4149af5778d048fa26">More...</a><br /></td></tr>
<tr class="separator:a1762512f6b6a1b4149af5778d048fa26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18cd651a9bdeba442f663bbd4d6e746a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_a18cd651a9bdeba442f663bbd4d6e746a.html#a18cd651a9bdeba442f663bbd4d6e746a">writePort</a> (int port, uint8_t value, uint8_t hwAddr=0)</td></tr>
<tr class="memdesc:a18cd651a9bdeba442f663bbd4d6e746a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets status of output pins of specified port.  <a href="classfabgl_1_1_m_c_p23_s17_a18cd651a9bdeba442f663bbd4d6e746a.html#a18cd651a9bdeba442f663bbd4d6e746a">More...</a><br /></td></tr>
<tr class="separator:a18cd651a9bdeba442f663bbd4d6e746a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af463b8a2faf1c3ced7cce2b8fedc5fa0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_af463b8a2faf1c3ced7cce2b8fedc5fa0.html#af463b8a2faf1c3ced7cce2b8fedc5fa0">writePort</a> (int port, void const *buffer, size_t length, uint8_t hwAddr=0)</td></tr>
<tr class="memdesc:af463b8a2faf1c3ced7cce2b8fedc5fa0"><td class="mdescLeft">&#160;</td><td class="mdescRight">High speed writes an entire buffer to a specific port.  <a href="classfabgl_1_1_m_c_p23_s17_af463b8a2faf1c3ced7cce2b8fedc5fa0.html#af463b8a2faf1c3ced7cce2b8fedc5fa0">More...</a><br /></td></tr>
<tr class="separator:af463b8a2faf1c3ced7cce2b8fedc5fa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b074f638d78ad71eb85b4eaa093e002"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_a5b074f638d78ad71eb85b4eaa093e002.html#a5b074f638d78ad71eb85b4eaa093e002">writePort16</a> (uint16_t value, uint8_t hwAddr=0)</td></tr>
<tr class="memdesc:a5b074f638d78ad71eb85b4eaa093e002"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets status of output pins of combined port A and B.  <a href="classfabgl_1_1_m_c_p23_s17_a5b074f638d78ad71eb85b4eaa093e002.html#a5b074f638d78ad71eb85b4eaa093e002">More...</a><br /></td></tr>
<tr class="separator:a5b074f638d78ad71eb85b4eaa093e002"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a757ff4f7b16a40109207981a8449b68b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_a757ff4f7b16a40109207981a8449b68b.html#a757ff4f7b16a40109207981a8449b68b">writeReg</a> (uint8_t addr, uint8_t value, uint8_t hwAddr=0)</td></tr>
<tr class="memdesc:a757ff4f7b16a40109207981a8449b68b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes 8 bit value to an internal register.  <a href="classfabgl_1_1_m_c_p23_s17_a757ff4f7b16a40109207981a8449b68b.html#a757ff4f7b16a40109207981a8449b68b">More...</a><br /></td></tr>
<tr class="separator:a757ff4f7b16a40109207981a8449b68b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29921f863c2024cd62bb9596f93f9f0e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_m_c_p23_s17_a29921f863c2024cd62bb9596f93f9f0e.html#a29921f863c2024cd62bb9596f93f9f0e">writeReg16</a> (uint8_t addr, uint16_t value, uint8_t hwAddr=0)</td></tr>
<tr class="memdesc:a29921f863c2024cd62bb9596f93f9f0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes 16 bit value to two consecutive registers.  <a href="classfabgl_1_1_m_c_p23_s17_a29921f863c2024cd62bb9596f93f9f0e.html#a29921f863c2024cd62bb9596f93f9f0e">More...</a><br /></td></tr>
<tr class="separator:a29921f863c2024cd62bb9596f93f9f0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p ><a class="el" href="classfabgl_1_1_m_c_p23_s17.html" title="MCP23S17 driver.">MCP23S17</a> driver. </p>
<p >This driver supports multiple devices attached at the same bus (with the same CS) using hardware selection.</p>
<p >Example: </p><pre class="fragment">MCP23S17 io;
io.begin(35, 12, 14, 13);                        // MISO = 35, MOSI = 12, CLK = 14, CS = 13
io.configureGPIO(MCP_B0, MCPDir::Output);        // B0 is an output
io.configureGPIO(MCP_A1, MCPDir::Input, true);   // A1 is an input with pullup
bool A1 = io.readGPIO(MCP_A1);                   // read A1
io.writeGPIO(MCP_B0, true);                      // sets B0 high
</pre> <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="_v_g_a_2_hardware_test_2_hardware_test_8ino-example.html#_a2">VGA/HardwareTest/HardwareTest.ino</a>.</dd>
</dl>

<p class="definition">Definition at line <a class="el" href="_m_c_p23_s17_8h_source.html#l00155">155</a> of file <a class="el" href="_m_c_p23_s17_8h_source.html">MCP23S17.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="_m_c_p23_s17_8h_source.html">MCP23S17.h</a></li>
<li><a class="el" href="_m_c_p23_s17_8cpp_source.html">MCP23S17.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><b>fabgl</b></li><li class="navelem"><a class="el" href="classfabgl_1_1_m_c_p23_s17.html">MCP23S17</a></li>
    <li class="footer">Generated on Mon Aug 29 2022 13:52:05 for FabGL by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3 </li>
  </ul>
</div>
</body>
</html>
